#ifndef _SKYBOXRENDERFEATURE_H_
#define _SKYBOXRENDERFEATURE_H_

#include <SERender/Renderer/RenderFeature/RenderFeature.h>
#include <SERender/Entity/Drawable.h>
#include <SERender/Resourses/Texture.h>
#include <SERender/Entity/DynamicSkybox.h>

namespace SEngine
{
    class SkyBoxRenderFeature : public RenderFeature
    {
    public:
        SkyBoxRenderFeature(Renderer & renderer);
        virtual ~SkyBoxRenderFeature() = default;
        virtual void BeginFrame() override {}
        virtual void EndFrame() override {}
        void DrawSkyBox(Texture & cubeTex);
        void DrawSkyBox(TextureHDR & cubeTex);
        void DrawSkyBox(Texture & cubeTex, ResRef<Material> material);
        void DrawSkyBox(TextureHDR & cubeTex, ResRef<Material> material);
        void DrawSkyBox(DynamicSkybox & skybox);

    private:
        void InitSkyBoxDrawable();
    private:
        Drawable m_skyBox;
    };
} // namespace SEngine



#endif